Conversation
|
Thanks for opening this — it has been seen, and it is queued. This note is automated, but it is not a brush-off: it exists so you know where your PR stands instead of having to guess from silence. Current review status: working through a backlog. What that means for this PR, concretely:
Things that will genuinely speed it up whenever review does happen:
If this fixes a bug, a reproduction we can run is worth more than a description of the symptom. Thanks for contributing, and sorry in advance for the wait. |
b3af448 to
c1dd441
Compare
|
Thank you for the CLI target-array correction. Current argument handling can pass array-looking text as a literal value, matching the reported contract gap. Review should preserve repeatable-flag compatibility and explicitly cover empty, malformed, mixed and repeated inputs. Maintainer bundle #2227 overlaps this area, so we need to reconcile the contributions before integration rather than ask you to redo the same work. |
c1dd441 to
2e4b459
Compare
|
Added the explicit coverage you asked for (same base, single commit amended):
The only behavioural change relative to the previous revision is the empty-array case: a well-formed empty array is now expanded (to nothing) instead of falling through to the literal-string path. Everything that is not a well-formed array of strings keeps the pre-existing literal-string behaviour, and the existing repeated-flag test ( |
|
Thank you for the table — six explicit cases, with a test named for each, is exactly the coverage we asked for, and the note that only the empty-array case changes behaviour made it easy to review. Here is the reconciliation I promised with #2227. That PR landed on
What Thank you again, and sorry that two PRs ended up fixing the same gap at the same time. |
`codebase-memory-mcp cli <tool> --flag value` builds the tool's JSON arguments from typed flags. Array-typed parameters such as `semantic_query` used to accept only repeated flags; the JSON spelling shown in the MCP schema (`--semantic-query '["a","b"]'`) was stored as a single opaque string element (DeusData#2150). `cli_add_typed` now expands such a literal; this pins the edge cases of that contract so it cannot regress: - a well-formed array of strings contributes its elements - an explicit empty array `[]` contributes nothing (not the keyword "[]") - a malformed literal stays one literal string, without an error - non-string items are copied as typed values, not stringified - literals and repeated flags mix, accumulating in argument order - repeated literals accumulate Signed-off-by: Hubert Tarnacki <hubert.tarnacki@gmail.com>
|
Rebased onto current
Local run: all 15 On the literal-string vs. typed-copy question: I don't feel strongly enough to push for a separate change. For a string-typed array like |
2e4b459 to
bc960d8
Compare
What does this PR do?
Fixes #2150.
codebase-memory-mcp cli <tool> --flag valuestored a JSON array literal passed to an array-typed flag (--semantic-query '["a","b"]') as a single string element, so the search ran against the literal text.cli_add_typednow expands a value that starts with[and parses as a non-empty JSON array of strings into individual elements; every other value (repeated flags, plain strings, non-array JSON) keeps the current behaviour. One commit, unit test intest_cli.c.Checklist
git commit -s) — required, CI rejectsunsigned commits (DCO, see CONTRIBUTING.md)
make -f Makefile.cbm test) — all suites green except 10test_cli.cinstall/uninstall cases that fail identically on a cleanmainin my environment (activation transaction I/O failed: target-entry-snapshot, environment-specific).make -f Makefile.cbm lint-ci) —clang-format-20andcheck-dco.shclean;clang-tidy/cppcheckare not installed locally, relying on CI for those two.